#ifndef GOBANG_H
#define GOBANG_H

#include <QApplication>
#include <QWidget>
#include <QPainter>
#include <QPen>
#include <QBrush>
//#include <QDebug>
#include <QMouseEvent>
#include <QMessageBox>
#include <QPushButton>
#include <QtMultimedia/QMediaPlayer>

#include <vector>

#include "piece.h"



class GoBang:public QWidget
{
    Q_OBJECT

private:
    QPushButton undo_button; //悔棋按钮
    QPushButton abandon_button; //让子按钮
    QPushButton reset_button;//重置按钮
    std::vector<Piece> pieces;//棋子数组
    Piece indicate;//设置一个棋子，用于落子
    void displayPieces();
    void displayBoard();
    bool pieceIfExist(Piece a_piece);  //判断棋子是否存在在棋盘上，true为存在
    int ifOver(); //检测是否五子连珠，1表示确实五子连珠白棋赢了，2黑棋赢了，0没用五子连珠
    void showText(); //显示哪种色棋要落子
protected:
    //鼠标移动按下事件
    void mousePressEvent(QMouseEvent *ev);
    void mouseMoveEvent(QMouseEvent *event);
    //鼠标绘制事件
    void paintEvent(QPaintEvent * event);

public:

    void undoFunction(); //悔棋
    void abandonFunction(); //让子
    void resetFunction();//重新开始

    GoBang();
};

#endif // GOBANG_H
